/***************************************************
> Copyright (C) 2024 ==KINGYI== All rights reserved.
> File Name: 1.c
> Author:cjy
> Mail: 
> Created Time: 2024年08月07日 星期三 11时22分16秒
***************************************************/
//设计一个线程实现，实现在字符串找一个指定单词
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
#include <dirent.h>
typedef struct str_find_str{
	char src[50];
	char dst[50];
	char *point;
	char *my_point;
}ST;

char* str_str_point(char *arr1,char *arr2){
    int i = 0,j = 0,flag = 0;
    int n = strlen(arr1)-strlen(arr2);
    if(n<0)
    {
        printf("error\n");
    }
    for(i=0;i<n;i++)
    {
        flag=0;
        if(*(arr1 + i) == *(arr2))
        {
            //特定字符串遍历
            for(j=1;*(arr2 + j)!='\0';j++)
            {
                if(*(arr1 + i + j) != *(arr2 + j))
                {
                    flag=1;
                    break;
                }
            }
            //找到位置
            if(flag==0)
            {
                break;
            }
        }
    }
    return arr1 + i;
}


void *find_sub(void *arg){
	ST *p = (ST *)arg;
	p->point = strstr(p->src,p->dst);
	p->my_point = str_str_point(p->src,p->dst);
}

int main(int argc,const char* argv[])
{
	pthread_t tid = 0;
	int ret = 0;
	ST arr;
	printf("请输入字符串:");
	scanf("%s",arr.src);	
	printf("请输入你想找到的单词:");
	scanf("%s",arr.dst);
	ret = pthread_create(&tid,NULL,find_sub,&arr);
	pthread_join(tid,NULL);
	printf("地址1:%p\n",arr.point);
	printf("my地址:%p\n",arr.my_point);
    return 0;
}
